package org.erp.store.infrastructure.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.erp.store.domain.entity.DeviceInventory;

import java.util.List;

@Mapper
public interface DeviceInventoryMapper extends BaseMapper<DeviceInventory> {
    int insertBatchIgnore(@Param("list") List<DeviceInventory> list);

    int insertIgnoreOne(@Param("item") DeviceInventory item);

    List<String> selectExistingCodes(@Param("codes") List<String> codes);

    int updateBatchStatus(@Param("ids") List<Long> ids, @Param("status") Integer status,
                          @Param("operateId") Long operateId,
                          @Param("operateName") String operateName);

    /**
     * 批量查询设备库存信息（仅查询必要字段）
     */
    List<DeviceInventory> selectByIdsWithStatus(@Param("ids") List<Long> ids);

    /**
     * 自定义批量更新 - 
     * 只更新必要的字段
     */
    int updateBatchByIdsAndStatus(@Param("list") List<DeviceInventory> list,
                         @Param("allowedStatuses") List<Integer> allowedStatuses);

    /**
     * 自定义批量更新 -
     * 只更新必要的字段
     */
    int updateBatchByIds(@Param("list") List<DeviceInventory> list);














}